package com.paw.ruoyi.admin.common.utils;

import java.util.List;
import java.util.stream.Collectors;

import cn.hutool.core.collection.CollUtil;
import com.paw.ruoyi.admin.common.dto.ElTreeDto;

/**
 * @author lvzihai
 * @date 2022/5/4
 **/
public class ElTreeUtil {

  public static List<ElTreeDto> getElSelectTree(List<ElTreeDto> elTreeDtos){

    return buildElTreeDtoList(elTreeDtos,0L);
  }

  private static List<ElTreeDto> buildElTreeDtoList(List<ElTreeDto> elTreeDtos,Long parentId){
    List<ElTreeDto> elTreeDtoList = elTreeDtos.stream()
        .filter(item -> item.getParentId().equals(parentId))
        .collect(Collectors.toList());
    for (ElTreeDto dto : elTreeDtoList) {
      List<ElTreeDto> children = buildElTreeDtoList(elTreeDtos,dto.getValue());
      if(CollUtil.isNotEmpty(children)){
        dto.setChildren(children);
      }
    }

    return elTreeDtoList;
  }

}
